import Vue from 'vue'
import VueRouter from 'vue-router'

// import Login from '../views/login/Login.vue'
const Login = () => import(/* webpackChunkName: "login_home_welcome" */ '../views/login/Login.vue')
// import Home from '../views/home/Home.vue'
const Home = () => import(/* webpackChunkName: "login_home_welcome" */ '../views/home/Home.vue')
// import Welcome from '../views/home/Welcome.vue'
const Welcome = () => import(/* webpackChunkName: "login_home_welcome" */ '../views/home/Welcome.vue')

// import Users from '../components/user/Users.vue'
const Users = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/users/Users.vue')
// import Rights from '../components/power/Rights.vue'
const Rights = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/power/Rights.vue')
// import Roles from '../components/power/Roles.vue'
const Roles = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/power/Roles.vue')

// import Cate from '../components/goods/Cate.vue'
const Cate = () => import(/* webpackChunkName: "cate_params" */ '../components/goods/Cate.vue')
// import Params from '../components/goods/Params.vue'
const Params = () => import(/* webpackChunkName: "cate_params" */ '../components/goods/Params.vue')

// import List from '../components/goods/List.vue'
const List = () => import(/* webpackChunkName: "list_add" */ '../components/goods/List.vue')
// import Add from '../components/goods/Add.vue'
const Add = () => import(/* webpackChunkName: "list_add" */ '../components/goods/Add.vue')

// import Order from '../components/order/Order.vue'
const Order = () => import(/* webpackChunkName: "order_report" */ '../components/order/Order.vue')
// import Report from '../components/report/Report.vue'
const Report = () => import(/* webpackChunkName: "order_report" */ '../components/report/Report.vue')

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    component: Login
  },
  {
    path: '/home',
    component: Home,
    redirect: '/home/welcome',
    children: [
      {
        path: '/home/welcome',
        component: Welcome
      },
      {
        path: '/home/users/users',
        component: Users
      },
      {
        path: '/home/rights/rights',
        component: Rights
      },
      {
        path: '/home/rights/roles',
        component: Roles
      },
      {
        path: '/home/goods/categories',
        component: Cate
      },
      {
        path: '/home/goods/params',
        component: Params
      },
      {
        path: '/home/goods/goods',
        component: List
      },
      {
        path: '/home/goods/add',
        component: Add
      },
      {
        path: '/home/orders/orders',
        component: Order
      },
      {
        path: '/home/reports/reports',
        component: Report
      }
    ]
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

router.beforeEach((to, from, next) => {
  if (to.path === '/login') return next()
  const token = window.sessionStorage.getItem('token')
  if (!token) return next('/login')
  next()
})

export default router
